﻿using System.Collections.Generic;
using System.ServiceModel;
using MJD.Comunes.DtoEntidades;
using MJD.Logica.Controladores;
using MJD.Servicios.Contratos;

namespace MJD.Servicios.Implementacion
{
    /// <summary>
    /// Clase que posee la logica de cada metodo del servicio 
    /// </summary>
    [ServiceBehavior]
    public class WsOtros : IWsOtros 
    {

        #region Atributos

        /// <summary>
        /// Controlador de la operaciones
        /// </summary>
        private ControladorTablaMaestras _controlador;

        #endregion

        #region Constructor

        /// <summary>
        /// Constructor de la clase
        /// </summary>
        public WsOtros()
        {
            _controlador = new ControladorTablaMaestras();
        }

        #endregion

        #region Implementacion

        /// <summary> Metodo que obtiene la lista de estados existentes en la base de datos </summary>
        /// <returns>Lista de Estados </returns>
        public List<DtoEstado> ObtenerEstados()
        {
            return _controlador.ConsultarTodosEstados();
        }


        /// <summary> Metodo que obtiene la lista de ciudades existentes dado un estado en la base de datos </summary>
        /// <returns>Lista de ciudades del estado </returns>
        public List<DtoCiudad> ObtenerCiudades(DtoEstado estado)
        {
            return _controlador.ConsultarCiudadPorEstado(estado);
        }


        /// <summary> Metodo que obtiene la lista de ramos existentes en la base de datos </summary>
        /// <returns>Lista de ramos </returns>
        public List<DtoRamo> ObtenerRamos()
        {
            return _controlador.ObtenerRamos();
        }

        /// <summary> Metodo que obtiene la lista de causas dado un ramo existentes en la base de datos </summary>
        /// <returns>Lista de causas </returns>
        public List<DtoCausa> ObtenerCausas(DtoRamo ramo)
        {
            return _controlador.ObtenerCausas(ramo);
        }

        #endregion
    }
}
